package com.tedu.api.thread;

import com.sun.org.apache.xerces.internal.xs.StringList;
import org.junit.Test;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Consumer;

/**
 * Lambda表达式：支持接口，抽象类【匿名内部类创建】
 *              -支持集合遍历-
 *
 */
public class LambdaAPI {
    // Lambda表达式-支持集合遍历-
    @Test
    public void textList(){
     //List集合:重复并且有序--存数据
        List<String> list=new LinkedList<>();
        list.add("zcc");
        list.add("825825");
        list.add("17346533849");
        //查看集合信息---遍历三种；普通for，增强for，forEach方法
        for (String name:list){
            System.out.println("增强for集合中元素"+name);
        }
        //Lambda表达式支持集合--forEach(Lambda表达式)
        //list.forEach(names->System.out.println(names));
      list.forEach(new Consumer<String>() {
          public void accept(String names) {
              System.out.println(names);
          }
      });
    }
    //Lambda表达式：支持集合遍历 Map 键值对存值
    @Test
    public void testMap(){
        Map<Integer,String> map=new HashMap<>();
        map.put(1,"z");map.put(2,"c");map.put(3,"x");
        map.forEach(new BiConsumer<Integer, String>() {
            public void accept(Integer integer, String s) {
                System.out.println("键："+integer+"\n"+"值"+s);
            }
        });
        //map保存"Entry：键值对" forEach()转成Lambda
        map.forEach((integer,s)-> System.out.println("键："+integer+"\n"+"值"+s));
    }
    /**Lambda作业
     * 单元测试：testLambdaHomeWork1【以此类推】 --周二12点前
     * 1.线程两种创建方式：使用Lambda表达式完成
     * 2.找集合中：listAPI：单元测试名：testSort 使用Lambda表达式完成
     * 3.找IO流--File类---”FilterAPI“：转换成匿名内部类转成Lambda
     * 使用Lambda表达式完成【5行搞定】
     * 4.找IO流--File类---"FilterAPI"：转换成匿名内部类转成Lambda
     * 使用Lambda表达式完成【2行搞定】
     */

}









